add error detection for navicache reader.
authortsteven4@gmail.com <tsteven4@gmail.com@f51c46e8-681c-474f-0cfe-069cfd0219fb>
Sun, 25 Aug 2013 18:55:19 +0000 (18:55 +0000)
committertsteven4@gmail.com <tsteven4@gmail.com@f51c46e8-681c-474f-0cfe-069cfd0219fb>
Sun, 25 Aug 2013 18:55:19 +0000 (18:55 +0000)
git-svn-id: http://gpsbabel.googlecode.com/svn/trunk@4568 f51c46e8-681c-474f-0cfe-069cfd0219fb

gpsbabel/navicache.cc

index 78655c7f59fd8d6f2a63b2850488440ce1e3c414..0588e88b3e74caab0875c6ac180f95f8a03b2fbb 100644 (file)
@@ -186,11 +186,19 @@ nav_read(void)
   reader.setDevice(&file);
 
   while (!reader.atEnd()) {
-    if (reader.name() == "CacheDetails" &&
-        reader.tokenType() == QXmlStreamReader::StartElement) {
-      NaviReadCache(reader);
+    if (reader.tokenType() == QXmlStreamReader::StartElement) {
+      if (reader.name() == "CacheDetails") {
+        NaviReadCache(reader);
+      }
     }
-    reader.readNextStartElement();
+    reader.readNext();
+  }
+  if (reader.hasError())  {
+    fatal(MYNAME ":Read error: %s (%s, line %ld, col %ld)\n",
+          CSTR(reader.errorString()),
+          CSTR(file.fileName()),
+          (long) reader.lineNumber(),
+          (long) reader.columnNumber());
   }
 }